The World Wide Web (“Web”) is a ubiquitous platform that allows straightforward access to content and information by everyone having access to the Internet worldwide. For that reason, it is nowadays not only a collection of interlinked documents, but also a platform for deploying rich content that is highly interactive, such as animated advertisements, multimedia applications, and games. This category of Web content is typically referred to as Rich Internet Applications (“RIAs” or “Applications”).
Early versions of web standards and web browsers did not provide the capabilities required by content authors to produce RIAs. As a result, multimedia vendors used extensibility mechanisms (such as the Netscape™ Plugin API or Microsoft™ ActiveX) that were introduced by web-browser vendors to add the missing capabilities and introduce RIA platforms. Some RIA platforms that have achieved adoption by web-browsers and content authors are Adobe™ Flash, Oracle JavaFX™ and Microsoft™ Silverlight.
RIA platforms extend the web browser by adding capabilities in the following areas: (1) vector/3D graphics and bezier curves; (2) motion, animation, and frame sequences; (3) raster graphics, bitmaps, and filters; (4) blend modes, layers, and clipping; (5) color transforms and gradients; (6) shapes, sprites, and morphing; (7) fonts, text rendering, and globalization; (8) menus, forms, and buttons for interactivity; (9) keyboard input, mouse pointer, and multi-touch; (10) microphone/camera input and accelerometer; (11) video/audio streaming and sound effects; (12) digital rights management; (13) network access, XML/JSON support, and web services; and (14) local storage and scripting support.
Due to the rich capabilities introduced by RIA platforms and the respective disparities in web-browser features, there was a quick and wide adoption of them by the most popular desktop Operating System platforms. The extensions or plug-ins that are installed in web browsers and that add RIA functionality are referred to as RIA players. In parallel, RIA-platform vendors have made available application authoring environments, which are used by developers to produce content that is supported by the RIA players. This has created a powerful ecosystem, which, according to the assessment of RIA platform vendors, has reached 99% of desktop users, millions of content authors and 30-40% of the web sites worldwide.
The typical life cycle of an Application that is based on RIA technologies is as follows:                1) The developer uses the RIA authoring environment to develop applications. These are stored in a file format supported by the authoring environment, but not meant for redistribution to end-user RIA players. Multimedia content, such as images, videos, sounds, fonts, etc. is typically stored in its original format. This material is typically referred to as “Assets”. The application logic is implemented using “Scripts”, in the language supported by the RIA platform (e.g., ActionScript for the case of Adobe Flash, JavaFX Script for the case of Oracle JavaFX and any .NET dialect for the case of Microsoft Silverlight).        2) After the Application is ready for publishing, the developer uses the RIA authoring environment to generate a representation that is appropriate for posting to a Web Server. Real examples are SWF files (for the case of Adobe Flash), JAR files (for the case of Oracle JavaFX) and XAP files (for the case of Microsoft Silverlight). When in this format, Assets are represented in a compact format and application logic is efficiently encoded, as a series of tags or bytecode, targeting the Player “Runtime” or “Virtual Machine”. The result is compressed.        3) The above compact representation (“File”) is posted to a Web Server. The Web Page that will embed the Application adds a reference to the File using a Hyper Text Markup Language (HTML) <embed> or <object> element, which identifies it using a Uniform Resource Locator (“URL”) and specifies the type of RIA player that needs to be instantiated by the web browser using a MIME-Type, or a Class-ID. The <embed> or <object> element typically also declares the screen dimensions of the RIA application and includes “Parameters” that are necessary for initializing it.        4) After the end-user opens the web page in the web browser of his Internet device (“Device”), the web browser downloads the HTML representation of the web page, encounters the <embed> or <object> element and attempts to instantiate the RIA Player that is installed and registered for handling the declared MIME-Type (or Class-ID). If such an RIA Player is not installed, the end-user is prompted to download and install such a web-browser extension or plug-in.        5) After the RIA player is instantiated, the web browser fetches the RIA File that is identified via the URL and provides it to the RIA Player, alongside the Parameters supplied by the <embed> or <object> element. The web browser also reserves screen area to be used by the RIA player, as specified by the relevant dimensions. The RIA player then interprets and plays the RIA File, executing the included tags or bytecode and displaying (or playing) the Assets embedded in it.        6) The end-user interacts with the Application using input devices (keyboard, mouse, touch screen, camera, microphone, etc.) and the Application uses output devices (screen, sound system, network card, etc.) to interact with the end-user, or with other elements. This interaction is implemented by the Player Runtime, whereas the application logic is executed by the Player Virtual Machine. Access to Device resources is controlled by the “Sandbox” environment of the Browser and Operating System, which ascertains the security of the platform.        7) After the end-user moves away from the Web Page, the Application instance is terminated, as is the case with the Player instance that was instantiated by the Browser to execute the Application.        
Despite the broad adoption on desktop Internet devices, proprietary RIA platforms have not achieved the same level of proliferation on mobile devices. According to RIA vendor estimates, while RIA players have reached some smartphones, there are important platforms that lack support. And for those having RIA players, there is feature disparity in comparison to the Desktop or Laptop Device versions of these platforms. Moreover, the product development investments required by RIA vendors to make RIA players available across the fragmented space of mobile devices and browsers are not considered to be sustainable, given the fact that these vendors receive revenue primarily by selling content authoring applications, and not through embedding their Players to Mobile Device platforms.